The invention generally relates to bit depth enhancement for scalable video coding.
A particular video may be watched by a number of different viewers using a variety of different devices and connections. For example, a particular Internet website may broadcast a video stream that may be viewed across various wired and wireless networks by mobile devices, desktop computers, televisions, etc., which may have different capabilities and connection to the website. For purposes of accommodating this heterogeneous environment, a concept called scalable video coding may be employed.
In scalable video coding, a multilayered compressed video stream is provided, which allows each end device to extract the information that matches the device's capability and ignore the remaining information. The compressed video stream may be encoded to accommodate a number of different scalable features, such as a scalable resolution, scalable frame rate, or scalable signal-to-noise ratio (SNR).
For purposes of generating the scalable video stream, the original video stream is processed by an encoder, which generates a compressed video stream that includes a baseline layer and at least one enhancement layer. As its name implies, the baseline layer constitutes the minimum information regarding the video. An end device may take advantages of features of the enhancement layer for purposes of scaling the received video stream to match the end device's capabilities.
The process of scalable video encoding typically involves converting the bit depth of the baseline layer to a higher bit depth for the enhancement layer. In this context, the “bit depth” means the number of bits that are used to represent each particular pixel value. For example, a compressed video stream that is associated with the baseline layer may have a bit depth of eight, in that each pixel value of the stream is represented by eight bits. The enhancement layer stream may have pixel values that are each represented by ten bits. Thus, the bit depth conversion involves converting eight bit pixel values of the baseline layer stream into the corresponding ten bit pixel values of the enhancement layer stream. Traditional bit depth scaling techniques involve block-based mapping or tone mapping. However, these techniques may be relatively inefficient from the standpoint of coding.